阅读更多

2顶
1踩

编程语言

原创新闻 MF高度评价DHH和RMH宣称J2EE将死

2006-07-12 12:08 by 见习编辑 robbin 评论(0) 有13678人浏览
infoq今天有两个颇为引人注目的新闻:

一条是Martin Folwer对rails enterprise的评价,其中MF高度评价了DHH,甚至在某些方面抬到了和Kent Beck的高度;
http://www.infoq.com/news/Martin-Fowler-Enterprise-Rails
Martin Folwer原文:
http://martinfowler.com/bliki/EnterpriseRails.html

另一条是著名的畅销书《Enterprise JavaBean》作者,兼EJB3,Java EE JCP委员Richard Monson-Haefel最近的调查报告,宣称Java EE 5的发布也成为了Java EE走向衰亡的起点。
http://www.infoq.com/news/Java-EE-Demise-Report

这两篇文章都很有意思,值得一看,而且有很多值得启示的地方:

MF赞赏DHH对于rails偏执的简单性理念,拒绝复杂性。认为rails坚持做好自己单一领域的事情的理念是对的,每个简单的工具去解决自己单一的问题,而不是用一个超级复杂的工具企图解决所有的问题。

RMH批评JavaEE 5对简化编程做的还不够,改进太小,时间拖的太晚,并且企图用超级复杂的单一方案去解决所有的问题,并且预言更多的开发人员会转向其他解决方案。

我个人的看法:

似乎业界已经逐渐开始形成公认:rails即使在企业开发领域也开始得到越来越多的承认;Java亟待解决的问题就是太复杂,企图解决所有的问题导致它越来越复杂,而且改进的步伐太缓慢。

不过目前而且相当长一段时间内,Java仍然是企业解决方案的不二首选。不过可以尝试使用rails作为web应用层开发技术,一些比较复杂的后台技术,例如消息系统,搜索引擎,工作流等等使用Java,各取所长。
2
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • History 对象的pushState()和replaceState()

    今天在看vue-router的时候发现,vue-router源码用到了history.pushState()和history.replaceState(),故,仔细看一下。 一. 概述 window.history属性指向 History 对象,它表示当前窗口的浏览历史。 History 对象保存了当前窗口访问过的所有页面网址。下面代码表示当前窗口一共访问过3个网址。 window.histo...

  • history.pushState()

    history.pushState() EC前端 - history.pushState() 描述 history.pushState()方法可以无刷新地向当前history插入一条历史状态。 什么是历史状态(history state)? 历史状态就是你在浏览器的当前Tab页中加载的页面,这些页面以时间作为先后顺序排列,称为历史状态列表。 历史状态分为两种: 由传统的网页加载生成的历史状态,即...

  • History:pushState() 方法

    在HTML文档中,方法向浏览器的会话历史栈增加了一个条目。该方法是异步的。为 popstate 事件增加监听器,以确定导航何时完成。state 参数将在其中可用。

  • history对象中replaceState详解

    忙呀忙

  • vue-router 路由超详细教程

    路由(英文: router)就是对应关系Hash 地址与组件之间的对应关系。vue-router是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装和配置的步骤① 安装 vue-router 包② 创建路由模块③ 导入并挂载路由模块④ 声明路由链接和占位符2.1在项目中安装 vue-router。

  • 再详解history.pushState和history.replaceState以及page ajax的实现

    在之前的文章《ajax无刷新加载页面,结合history.state修改url》中,我详细解释了history.pushState、history.replaceState、history.state以及window.popstate这四个关键元素,并试图建立一个合理的ajax无刷新更换URL的页面加载方式。但那之后,我遇到一个比较复杂的问题,集中在state的内容上,本文则来详解state这个要...

  • PM2入门及其常用命令

    进程管理主要是指创建,终止和监控进程。进程管理器主要是用来确保你的应用在启动后能够保持在线pm2 是 nodejs 的进程管理器,默认支持负载均衡,能够守护进程。还支持查看应用运行时的性能,资源占用情况等当我们需要管理多个应用,或者应用有多个运行环境时,使用pm2 start来启动应用+配置参数是很不方便的。所以,pm2 支持使用配置文件来启动和管理应用。

  • Object.is()方法

    Object.is()方法 +0==-0;/true +0===-0;//true Object.is(+0,-0);//false Object.is(NaN,NaN);//true 对于Object.is来说,其运行结果在大部分情况中与===运算符相同,唯一的区别在于+0和-0被识别为不相等并且NaN与NaN等价。 转载于:https://www.cnblogs.c...

  • 【js/css】pushState和popState简明教程

    pushState和replaceState h5中提供了只修改地址栏、不修改页面内容的api: pushState(添加浏览历史), replaceState(修改当前浏览历史), popState事件在用户返回或前进进会被出发触发 history.pushState方法接受三个参数,依次为: state:一个与指定网址相关的状态对象,popstate事件触发时,该对象会传入回调函数。如果不需要这个对象,此处可以填null。可用它来传一些数据 title:新页面的标题,但是所有浏览器目前都忽略这个值,

  • 【Vue】vuex冷门实例方法--replaceState

    vuex冷门实例方法–replaceState 状态合并 看这段代码: if (sessionStorage.getItem("store")) { this.$store.replaceState(Object.assign({}, this.$store.state, JSON.parse(sessionStorage.getItem("store")))) console.log('正在从sessionStorage恢复store') console.log(this.$store.st

  • javascript history对象详解

    前面的话history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。由于安全方面的考虑,开发人员无法得到用户浏览器的URL,但借由用户访问过的页面列表,可以在不知道实际URL的情况下实现后退和前进。本文将详细介绍BOM中的history对象lengthhistory.length属性保存着历史记录的URL数量。初始时,该值为1。如果当前窗口先后访问了三个网址,history.length...

  • js中history对象

    在上面的代码中,调用pushState方法设置了一个状态对象,其中包含了一个名为page的属性,值为"index",将URL地址改变为/index.html。随后监听了popstate事件,当调用back方法回到上一个历史记录时,popstate事件会被触发,可以在事件处理函数中获取到当前历史记录的状态对象,通过JSON.stringify方法将其序列化为字符串输出到控制台中。在上面的示例中,当用户在浏览器中点击后退按钮时,popstate事件将被触发,并且状态对象将被输出到控制台。

  • window history pushState replaceState 跳转原理

    一、pushState 比如,当前打开的界面是:https://developer.mozilla.org/en-US/docs/Web/API/History,如下图所示: 在chrome的console下,执行代码: history.pushState({},'','https://developer.mozilla.org/en-US/docs/Web/API/History_API') 则浏览器中会看到以下三种变化: 1、当前地址栏的url会变成:https://developer.

  • vue-router的使用及实现原理

    前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求有两种方式: 1. 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航 2. 使用H5的window.history功能,使用URL的Hash来模拟一个完整的URL。当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路

  • vue-router原理详解

    带你轻松掌握前端路由原理,深入了解hash模式和history模式的原理。

  • 【进程管理器】PM2应用进程管理器

    pm2是一个带有负载均衡功能的应用进程管理器,类似有Supervisor,forever

  • vue路由模式及 history 模式下服务端配置

    前言 vue 项目中,我们比较常用的模式为 hash 和 history 模式 默认情况下,vue 项目采用的就是 hash 模式 有些人对 history 模式下,为什么需要服务器做相应配置,以及如何配置不甚理解,所以这篇文章就对此做出分析,重点是让大家理解,为什么 history 模式下需要服务器做配置 这里会对 hash 模式和 history 模式都做出说明,通过对比,才能更好的理解我们的行为 1. hash 模式 1.1 什么是 hash 模式 先从一个熟悉的锚标记案例开始,帮助大家理解 hash

  • ES6 Object.is() 的使用

    ES6 Object.is 的使用 定义:方法判断两个值是否是相同的值。 语法:Object.is(value1, value2) value1:第一个需要比较的值 value2:第二个需要比较的值 返回值:表示两个参数是否相同的 布尔值 。 Object.is('foo', 'foo'); // true Object.is(window, window); // true...

  • HEXO+PAGE 搭建个性博客

  • 关于HTML5 的history API介绍与使用

    上一篇我们介绍了H5的营销,那么H5的营销必然会设计到一些技术性的问题,那么本篇我们就介绍H5的一些新型特性。这些痕迹就保存在history中,在现在热火的移动终端,以微信为首的H5开发已不再稀有,越来越多的产品正向着H5转型,那么我们将面临一些问题,例如我们在微信公众号中点击了某个页面的链接然后如此循环点击页面中的链接,那么浏览器的history的堆栈中就会存储一堆记录,当想返回到公众号的主页面...

Global site tag (gtag.js) - Google Analytics